#ifndef NANE_WIN32WINDOWSYSTEM_H
#   define  NANE_WIN32WINDOWSYSTEM_H

#   include "nane/WindowSystem/IWindowSystem.h"
#   include "nane/core/WinAPI/winapi.h"

namespace nane
{
    class Win32WindowSystem
        : public IWindowSystem
    {
    public:
        Win32WindowSystem();
        ~Win32WindowSystem();

        bool Initialize();
        void Shutdown();

    public:
        IWindow* CreateWindow( const char* _title, uint32 _width, uint32 _height, uint32 _posX, uint32 _posY );
        void ReleaseWindow( IWindow* _window );
        uint32 GetScreenWidth();
        uint32 GetScreenHeight();

    private:
        ATOM m_windowClassAtom;
        HINSTANCE m_hInstance;
    };
}   // namespace nane

#endif // NANE_WIN32WINDOWSYSTEM_H
